/**
 * 求奇数的乘积（用顺序表模板实现），建议大家自己敲一遍然后再使用
 */
#include <iostream>

using namespace std;

#define eleType int

struct SequenceList
{
    eleType *pElements; // 存储顺序表内的元素
    int nSize;          // 大小
    int nCapacity;      // 容量
};

// 初始化
void initializeList(SequenceList *pList, int nCapacity)
{
    pList->pElements = new eleType[nCapacity];
    pList->nSize = 0;
    pList->nCapacity = nCapacity;
}

// 获取大小
int getListSize(SequenceList *pList) 
{
    return pList->nSize;
}

// 判空
bool isEmpty(SequenceList *pList)
{
    return pList->nSize == 0;
}

// 销毁顺序表
void destroyList(SequenceList *pList)
{
    delete [] pList->pElements;
}

// 插入
void insertList(SequenceList *pList, int nIndex, eleType element)
{
    if (nIndex < 0 || nIndex > pList->nSize)
    {
        throw std::runtime_error("index error");
    }
    // 判断是否需要扩容
    if (pList->nSize == pList->nCapacity)
    {
        int nNewCapacity = pList->nCapacity * 2;
        eleType *newElements = new eleType[nNewCapacity];
        for (int i = 0; i < pList->nSize; ++i)
        {
            newElements[i] = pList->pElements[i];
        }
        delete [] pList->pElements;
        pList->pElements = newElements;
        pList->nCapacity = nNewCapacity;
    }
    for (int i = pList->nSize; i > nIndex; --i)
    {
        pList->pElements[i] = pList->pElements[i - 1];
    }
    pList->pElements[nIndex] = element;
    pList->nSize++;
}

// 删除
void deleteElement(SequenceList *pList, int nIndex)
{
    if (nIndex < 0 || nIndex >= pList->nSize)
    {
        throw std::runtime_error("index error");
    }
    for (int i = nIndex; i < pList->nSize; ++i)
    {
        pList->pElements[i] = pList->pElements[i + 1];
    }
    pList->nSize--;
}

// 查找
int findElement(SequenceList *pList, eleType element)
{
    for (int i = 0; i < pList->nSize; ++i)
    {
        if (pList->pElements[i] == element)
        {
            return i;
        }
    }
    return -1;
}

// 索引
eleType getElement(SequenceList *pList, int nIndex)
{
    if (nIndex < 0 || nIndex >= pList->nSize)
    {
        throw std::runtime_error("index error");
    }
    return pList->pElements[nIndex];
}

// 更新
void updateElement(SequenceList *pList, int nIndex, eleType element)
{
    if (nIndex < 0 || nIndex >= pList->nSize)
    {
        throw std::runtime_error("index error");
    }
    pList->pElements[nIndex] = element;
}

int main()
{
    int n = 0;
    
    while (cin >> n)
    {
        SequenceList s;         // 声明一个顺序表
        initializeList(&s, 1);  // 初始化顺序表
        for (int i = 0; i < n; ++i)
        {
            int a;
            cin >> a;
            insertList(&s, i, a);   // 插入顺序表
        }
        int prod = 1;
        for (int i = 0; i < n; ++i)
        {
            int val = getElement(&s, i);    // 获取顺序表内的具体值
            if (val % 2 == 1)
            {
                prod = prod * val;
            }
        }
        cout << prod << endl;
    }
       
    return 0; 
}